package com.ms.demo;

/**
 * @description: 创建不同类型的记录器。赋予它们不同的错误级别，并在每个记录器中设置下一个记录器。每个记录器中的下一个记录器代表的是链的一部分。
 * @author: ms
 * @create: 2022-10-27 16:46
 */
public class TestMain {

    private static AbstractLogger getChainOfLoggers(){

        AbstractLogger consoleLogger = new ConsoleLogger(AbstractLogger.INFO);//日志级别为1
        AbstractLogger fileLogger = new FileLogger(AbstractLogger.DEBUG);//日志级别为2
        AbstractLogger errorLogger = new ErrorLogger(AbstractLogger.ERROR);//日志级别为3

        errorLogger.setNextLogger(fileLogger);
        fileLogger.setNextLogger(consoleLogger);

        return errorLogger;
    }

    public static void main(String[] args) {

        AbstractLogger loggerChain = getChainOfLoggers();

        loggerChain.logMessage(AbstractLogger.INFO, "This is an information.");

        loggerChain.logMessage(AbstractLogger.DEBUG,"This is a debug level information.");

        loggerChain.logMessage(AbstractLogger.ERROR,"This is an error information.");
    }

}